package exam_mod

// QstSaveReq 保存请求的结构体
type QstSaveReq struct {
	// QstId 问题编号
	QstId string `json:"qstId"`
	// Kind 题型，1单选，2判断，3多选，4填空，5简答
	Kind uint8 `json:"kind" v:"题型,number,min=1,max=5"`
	// QstNo 题号
	QstNo string `json:"qstNo" v:"题号,string,min=1,max=10"`
	// Title 题目
	Title string `json:"title" v:"题目,string,min=1,max=300"`
	// Answer 答案
	Answer string `json:"answer"`
	// Keywords 关键词
	Keywords string `json:"keywords"`
	// FileNames 附件名称串
	FileNames string `json:"fileNames"`
	// FileUrls 附件地址串
	FileUrls string `json:"fileUrls"`
	// Remarks 备注说明
	Remarks string `json:"remarks"`
	// OptList 选项列表
	OptList []*OptSaveReq `json:"optList"`
	// SaveType 题型，1新增，2修改
	SaveType uint8 `json:"saveType"`
}

// OptSaveReq 保存请求的结构体
type OptSaveReq struct {
	// OptId 答题编号
	OptId string `json:"optId"`
	// QstId 所属问题编号
	QstId string `json:"qstId" v:"所属问题编号,string,min=1,max=21"`
	// OptNo 选项编码
	OptNo string `json:"optNo" v:"选项编码,string,min=1,max=10"`
	// OptName 选项名称
	OptName string `json:"optName" v:"选项名称,string,min=1,max=200"`
	// ImgNames 图片名称串
	ImgNames string `json:"imgNames"`
	// ImgUrls 图片地址串
	ImgUrls string `json:"imgUrls"`
	// IzRight 是否正确，1正确，2错误
	IzRight uint8 `json:"izRight"`
	// Answer 答案
	Answer string `json:"answer"`
	// Keywords 关键词
	Keywords string `json:"keywords"`
	// Remarks 备注说明
	Remarks string `json:"remarks"`
}

// QstExtVo 判断重复编码请求的结构体
type QstExtVo struct {
	QstId string `json:"qstId"`
	QstNo string `json:"qstNo"`
	Title string `json:"title"`
	Kind  uint8  `json:"kind"`
}

// QstDelsReq 删除请求的结构体
type QstDelsReq struct {
	Ids string `json:"ids" v:"编号,string,min=21"`
}

// QstPageReq 获取分页列表的请求结构体
type QstPageReq struct {
	Keywords string `json:"keywords"`
	Kind     uint8  `json:"kind"`
	Limit    uint8  `json:"limit"`
	Offset   uint32 `json:"offset"`
}

// QstPageRes 获取分页列表的返回结构体
type QstPageRes struct {
	Total any `json:"total"`
	List  any `json:"list"`
}

// QstSelReq 获取题列表的请求结构体
type QstSelReq struct {
	Kind  int64 `json:"kind"`
	Limit int64 `json:"limit"`
}
